﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using MySql.Data.MySqlClient;
using System.Data;
using System.Data.EntityClient;
using CajaChica.Entidades;
namespace CajaChica.Clases
{
    class clsLiquidacionCabecera
    {
        cajaEntities objCajaEntidades;
        public void Guardar(int empleado, string motivo, DateTime fechaSolicitud,
            DateTime fechaLiquidacion, decimal total, decimal reintegro, decimal reembolso,
            string periodo, int usuario)
        {
            objCajaEntidades = new cajaEntities();
            liquidacion_cabecera cabecera = new liquidacion_cabecera 
            { 
                id_persona = empleado,
                motivo = motivo,
                fecha_solicitud = fechaSolicitud,
                fecha_liquidacion = fechaLiquidacion,
                total = total,
                reintegro = reintegro,
                reenbolso = reembolso,
                periodo = periodo,
                id_usuario = usuario,
                fecha_registro = DateTime.Now
            };
            objCajaEntidades.AddToliquidacion_cabecera(cabecera);
            objCajaEntidades.SaveChanges();
        }

        public void Eliminar()
        {
            
        }

        public ArrayList CargarDatosGridView()
        {
            ArrayList LISTA = new ArrayList();
            objCajaEntidades = new cajaEntities();

            var query = from lc in objCajaEntidades.liquidacion_cabecera
                        join p in objCajaEntidades.personas on lc.id_persona equals p.id
                        where lc.id_persona != null
                        orderby lc.fecha_liquidacion ascending
                        select new 
                        {
                            CODIGO = lc.id,
                            RESPONSABLE = p.rs,
                            MOTIVO = lc.motivo,
                            FECHA_SOLICITUD = lc.fecha_solicitud,
                            FECHA_LIQUIDACION = lc.fecha_liquidacion,
                            TOTAL = lc.total,
                            PERIODO = lc.periodo
                        };

            foreach (var DATOS in query)
            {
                LISTA.Add(DATOS);
            }
            return LISTA;
        }

        public ArrayList Buscar(string criterio)
        {
            ArrayList LISTA = new ArrayList();
            objCajaEntidades = new cajaEntities();

            var query = from lc in objCajaEntidades.liquidacion_cabecera
                        join p in objCajaEntidades.personas on lc.id_persona equals p.id
                        where lc.id_persona != null && p.rs.Contains(criterio)
                        orderby lc.fecha_liquidacion ascending
                        select new
                        {
                            CODIGO = lc.id,
                            RESPONSABLE = p.rs,
                            MOTIVO = lc.motivo,
                            FECHA_SOLICITUD = lc.fecha_solicitud,
                            FECHA_LIQUIDACION = lc.fecha_liquidacion,
                            TOTAL = lc.total,
                            PERIODO = lc.periodo
                        };
            foreach (var DATOS in query)
            {
                LISTA.Add(DATOS);
            }
            return LISTA;
        }
    }
}
